using System;
using System.Collections.Generic;

namespace Functional
{
    public class Merges
    {
        public static T[] Merge<T>(T[] inputs1, T[] inputs2)
        {
            List<T> lOut = new List<T>();
            Int32 L;
            for (L = 0; L < inputs1.Length; L++)
            {
                lOut.Add(inputs1[L]);
                lOut.Add(inputs2[L]);
            }
            return lOut.ToArray();
        }





        //public static T[] Merge<T>(T[][] inputs)
        //{
        //    List<T> lOut = new List<T>();
        //    Int32 L1,L2;
        //    for (L1 = 0; L1 < inputs.Length; L1++)
        //    {
        //        for (L2 = 0; L2 < inputs[L1].Length; L2++)
        //        {
        //            lOut.Add(inputs[L1][L2]);
        //        }
        //    }
        //    return lOut.ToArray();
        //}

        //public static T[][] UnMerge<T>(T[] inputs,int subVectorLength)
        //{
        //    T[][] lOut = new T[inputs.Length / subVectorLength][];
        //    Int32 L1, L2,L3;
        //    L3 = 0;
        //    for (L1 = 0; L1 < inputs.Length/subVectorLength; L1++)
        //    {
        //        lOut[L1] = new T[subVectorLength];
        //        for (L2 = 0; L2 < subVectorLength; L2++)
        //        {
        //            lOut[L1][L2] = inputs[L3];
        //            L3++;
        //        }
        //    }
        //    return lOut;
        //}
    }
}